<?php
/**
 * @filesource  07/03/2010
 * @author      PHPDF <http://www.phpdf.org.br>
 * @package     <<application>>
 * @subpackage  <<application>>.application.controllers
 * @version     $Id: AdministradorController.php 187 2012-03-05 22:35:49Z elinis.matos@gmail.com $
 */
class AdministradorController extends Phpdf_Controller_Action
{
    /**
     * Painel do administrador
     * @return void
     */
    public function indexAction()
    {
        $idUsuario                        = Zend_Auth::getInstance()->getIdentity()->id;
        // Atividades submetidas
        $this->view->atividadesSubmetidas = Atividade::build()->fetchAll('situacao = ' . Atividade::SUBMETIDO, 'nome');
        // Atividades
        $this->view->atividades           = Atividade::build()->findAll();
        // Atividades rejeitadas
        $this->view->atividadesRejeitadas = Atividade::build()->fetchAll('situacao = ' . Atividade::REJEITADO, 'nome');
        // Atividades reservadas
        $this->view->atividadesReservadas = Atividade::build()->fetchAll('situacao = ' . Atividade::RESERVA, 'nome');
        // Usuários cadastrados
        $this->view->qtUsuarios           = Usuario::build()->fetchAll()->count();
        // Usuários cadastrados
        $this->view->qtInscricoes         = Inscricao::build()->fetchAll()->count();
        // Vagas ocupadas/inscrições
        $this->view->vagasOcupadas        = Inscricao::build()->countByAtividade();
        //Atividades que o admin está inscritos
        $this->view->atividadesInscrito   = Atividade::build()->findByParticipante($idUsuario);
    }
    public function listagemAction()
    {
        if ($this->_getParam('tipo') == Perfil::PARTICIPANTE) {
            $this->view->usuarios = Usuario::build()->fetchAll(null, 'nome');
            $this->render('listagem-usuario');
        } //$this->_getParam('tipo') == Perfil::PARTICIPANTE
        else {
            $this->view->usuarios = Usuario::build()->findPalestrante();
        }
    }

    public function editarUsuarioAction()
	{		
		$id               = $this->_getParam( 'id', null );
		$tbUsuario = new Usuario();
		$row = $tbUsuario->getInfoUsuario($id);
			
		if ($this->getRequest()->isPost()) {
			$row->cpf = $this->_getParam('cpf', null );	
			$row->nome = $this->_getParam('nome', null );	
			$row->email = $this->_getParam('email', null );	
			$row->cidade = $this->_getParam('cidade', null );	
			$row->uf_id = $this->_getParam('uf_id', null );	
			$row->cep = $this->_getParam('cep', null );	
			$row->site = $this->_getParam('site', null );	
			$senha = $this->_getParam('senha', null );
			if ($senha) 
			{
				$row->senha = md5($senha);
			}
			$row->save();
			$this->_addMessage('Usuário alterado com sucesso!');
			$this->_redirect('administrador/listagem/tipo/participante');
		}
		else {
			$this->view->id = $id;
			$this->view->cpf = $row['cpf'];
			$this->view->nome = $row['nome'];
			$this->view->email = $row['email'];
			$this->view->cidade = $row['cidade'];
			$this->view->uf_id = $row['uf_id'];
			$this->view->cep = $row['cep'];
			$this->view->site = $row['site'];		
			
			// select de UFs
			$uf        = new Uf();
            $rowSetUfs = $uf->fetchAll(null, 'nome');
            $ufs       = array();
            foreach ($rowSetUfs as $rowUf) {
                $ufs[$rowUf->id] = $rowUf->nome;
            } //$rowSetUfs as $rowUf
            $this->view->ufs = $ufs;	
			$this->render();
		}
	}


    public function marcarPresencaAction()
    {
        $this->_isAjax();
        $arrParticipante = $this->_request->getParam('usuario', false);
        $idAtividade     = $this->_request->getParam('id_atividade', false);
        Inscricao::build()->getDefaultAdapter()->beginTransaction();
        try {
            Inscricao::build()->update(array(
                'presenca' => 'N'
            ), 'id_atividade=' . $idAtividade);
            foreach ($arrParticipante as $idUsuario) {
                Inscricao::build()->marcarPresenca($idAtividade, $idUsuario);
            } //$arrParticipante as $idUsuario
            Inscricao::build()->getDefaultAdapter()->commit();
            echo 'Presença marcada com sucesso';
        }
        catch (Exception $e) {
            Inscricao::build()->getDefaultAdapter()->rollBack();
            echo $e->getMessage();
        }
    }
    public function emailAction()
    {
        if ($this->getRequest()->isPost()) {
            $mail = new Zend_Mail();
            $mail->setBodyHtml($this->_getParam('email'));
            $mail->addTo($this->_getParam('destinatario'), $this->_getParam('destinatario'));
            $mail->setSubject($this->_getParam('assunto'));
            $mail->send();
            $this->_addMessage('E-mail enviado com sucesso!');
            $this->_redirect('administrador/email');
        } //$this->getRequest()->isPost()
    }
    public function gravarColaboradorAction()
    {
        $colaboradores = ( array ) $this->_getParam('colaborador');
        if ($colaboradores) {
            $where     = 'id IN (' . implode(', ', $colaboradores) . ')';
            $tbUsuario = new Usuario();
            $tbUsuario->update(array(
                'colaborador' => 'null'
            ));
            $tbUsuario->update(array(
                'colaborador' => Usuario::COLABORADOR
            ), $where);
            $this->_addMessage('Colaboradores gravados com sucesso');
        } //$colaboradores
        $this->_redirect('administrador/listagem/tipo/' . Perfil::PARTICIPANTE);
    }
}
